/*
 * @Author: your name
 * @Date: 2021-12-30 19:02:22
 * @LastEditTime: 2021-12-30 19:16:23
 * @LastEditors: Please set LastEditors
 * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 * @FilePath: \flutter-learning\Dart_Basic_Grammer\mixins.dart
 */


// mixins 中文意思是混入，就是在类中加入其他功能

// 在 dart 中可以使用 mixins 实现类似多继承的功能

// 因为 mixins 使用的条件，随着 dart 版本一直在变，这里是 dart 2.x 中使用 mixins 的条件
/**
 * 1. 作为 mixins 的类只能继承来自 object，不能继承其他类
 * 2. 作为 mixins 的类不能有构造函数
 * 3. 一个类可以 mixins 多个 mixins 类
 * 4. mixins 绝不是继承，也不是接口，而是一种全新的特性
 */

class A {
  void printA() {
    print('A');
  }

}

class B {
  void printB() {
    print('B');
  }
}

class C extends A with B {
  /**
   * A, B 不能继承别的函数
   * A, B 不能由构造函数
   */
}

// 一个 class 可以 mixins 多个 mixins 类


void main(List<String> args) {
  var c = new C();
  c.printA();
  c.printB();
}